package virtualTabletop;

import java.util.ArrayList;

import monster.Monster;
import monster.MonsterAbility;
import monster.Origin;
import monster.Role;
import monster.Type;
import player.PlayerCharacter;
import player.PlayerClass;
import player.PlayerClasses;
import player.Race;
import player.Races;
import powers.Power;
import powers.ThePowers;
import Items.TheWeapons;
import Items.Weapon;
import abilities.Abilities;
import character.Alignment;
import character.Resistance;
import character.Size;
import feats.Feat;

/**
 *Character creator, not finished.
 * 
 * @author bjo013
 * 
 */
public class CharacterCreator
{

	public static Monster createMonster()
	{
		Position pos2 = new Position(1, 2);

		int[] AC = { 10 };
		int[] Fort = { 10 };
		int[] Ref = { 10 };
		int[] Will = { 10 };

		ArrayList<Power> powers = new ArrayList<Power>();

		powers.add(ThePowers.meleeBasicAttack);

		Monster monster = new Monster(30,
				new Abilities(10, 10, 10, 10, 10, 10), AC, Fort, Ref, Will,
				powers, 5, 0, 0, Size.Medium, new ArrayList<Resistance>(),
				Alignment.ChaoticEvil, 0, TargetType.Enemy, "Monster", -1,
				Role.Solo, Origin.Elemental, Type.Animate, Keyword.Homunculus,
				200, new ArrayList<MonsterAbility>(), TheWeapons.club, pos2,
				"virtualTabletop/gfx/TheGlowingEdgesMonster.png");

		return monster;
	}

	public static Monster createMonster2()
	{
		Position pos2 = new Position(1, 1);

		int[] AC = { 10 };
		int[] Fort = { 10 };
		int[] Ref = { 10 };
		int[] Will = { 10 };

		ArrayList<Power> powers = new ArrayList<Power>();

		powers.add(ThePowers.meleeBasicAttack);

		Monster monster = new Monster(30,
				new Abilities(10, 10, 10, 10, 10, 10), AC, Fort, Ref, Will,
				powers, 5, 0, 0, Size.Medium, new ArrayList<Resistance>(),
				Alignment.ChaoticEvil, 0, TargetType.Enemy, "Monster2", -1,
				Role.Solo, Origin.Elemental, Type.Animate, Keyword.Homunculus,
				200, new ArrayList<MonsterAbility>(), TheWeapons.club, pos2,
				"virtualTabletop/gfx/RungWrath.png");

		return monster;
	}

	public static PlayerCharacter createPlayer()
	{
		/*
		 * Scanner tastatur = new Scanner(System.in);
		 * 
		 * System.out.println("What is your name?: "); String playerName =
		 * tastatur.nextLine();
		 * 
		 * System.out.println("What do you call your character?: "); String
		 * charName = tastatur.nextLine();
		 * 
		 * System.out.println("Choose your class: "); PlayerClass playerClass =
		 * new PlayerClass(ClassName.valueOf(tastatur.next()));
		 * 
		 * System.out.println("Choose your race: "); Race dwarf = new
		 * Race(Races.valueOf(tastatur.next()));
		 */

		String playerName = new String();
		PlayerClass playerClass = PlayerClasses.fighter;
		Race race = Races.dwarf;
		String charName = race.getRace().toString() + " "
				+ playerClass.getClassName().toString();

		Abilities abilities = new Abilities(16, 16, 13, 10, 14, 11);

		int[] AC = { 10, 7 };
		int[] Fort = { 10, 5 };
		int[] Ref = { 10, 1 };
		int[] Will = { 10, 2 };

		Weapon sword = TheWeapons.longsword;

		ArrayList<Power> powers = new ArrayList<Power>();

		ArrayList<Feat> feats = new ArrayList<Feat>();

		powers.add(ThePowers.meleeBasicAttack);

		Position pos1 = new Position(0, 1);

		PlayerCharacter player = new PlayerCharacter(1, playerClass, race,
				abilities, AC, Fort, Ref, Will, powers, 1, 1,
				Alignment.LawfulGood, feats, charName, playerName,
				"Some nonrandom data", sword, pos1,
				"virtualTabletop/gfx/DwarvenMarvin.png");

		return player;
	}

	public static PlayerCharacter createPlayer2()
	{
		/*
		 * Scanner tastatur = new Scanner(System.in);
		 * 
		 * System.out.println("What is your name?: "); String playerName =
		 * tastatur.nextLine();
		 * 
		 * System.out.println("What do you call your character?: "); String
		 * charName = tastatur.nextLine();
		 * 
		 * System.out.println("Choose your class: "); PlayerClass playerClass =
		 * new PlayerClass(ClassName.valueOf(tastatur.next()));
		 * 
		 * System.out.println("Choose your race: "); Race dwarf = new
		 * Race(Races.valueOf(tastatur.next()));
		 */

		String playerName = new String();
		PlayerClass playerClass = PlayerClasses.fighter;
		Race race = Races.dwarf;
		String charName = race.getRace().toString() + "2 "
				+ playerClass.getClassName().toString();

		Abilities abilities = new Abilities(16, 16, 13, 10, 14, 11);

		int[] AC = { 10, 7 };
		int[] Fort = { 10, 5 };
		int[] Ref = { 10, 1 };
		int[] Will = { 10, 2 };

		Weapon sword = TheWeapons.longsword;

		ArrayList<Power> powers = new ArrayList<Power>();

		ArrayList<Feat> feats = new ArrayList<Feat>();

		powers.add(ThePowers.meleeBasicAttack);

		Position pos1 = new Position(0, 0);

		PlayerCharacter player = new PlayerCharacter(1, playerClass, race,
				abilities, AC, Fort, Ref, Will, powers, 1, 1,
				Alignment.LawfulGood, feats, charName, playerName,
				"Some nonrandom data", sword, pos1,
				"virtualTabletop/gfx/honos.png");

		return player;
	}
}
